perm filename INST4.LSP[F76,JMC] blob sn#254301 filedate 1976-12-27 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	(DEFUN INSTVAL (PAT EXPR ALISTS)
C00004 ENDMK
CāŠ—;
(DEFUN INSTVAL (PAT EXPR ALISTS)
(COND 
((NULL PAT) (COND ((NULL EXPR) ALISTS) (T NIL)))
((ISVAR PAT) (INSTVAR PAT EXPR ALISTS))
((EQ (CAR PAT) 'QUOTE) (COND ((EQUAL (CADR PAT) EXPR) ALISTS) (T NIL)))
((EQ (CAR PAT) 'CONS)
(COND ((ATOM EXPR) NIL) (T
 (INSTVAL (CADDR PAT) (CDR EXPR) (INSTVAL
	(CADR PAT) (CAR EXPR) ALISTS)))))
((EQ (CAR PAT) 'LIST) (COND ((NULL (CDR PAT)) (COND ((NULL EXPR) ALISTS) (T NIL)))
((ATOM EXPR) NIL)
(T (INSTVAL (CONS 'LIST (CDDR PAT)) (CDR EXPR) (INSTVAL (CADR PAT) (CAR EXPR
) ALISTS)))))
))

(DEFUN INSTVAR (PAT EXPR ALISTS)
(COND
((NULL ALISTS) NIL)
(T ((LAMBDA (Z) (COND
((NULL Z) (CONS (CONS (CONS PAT EXPR) (CAR ALISTS)) (INSTVAR PAT EXPR
	(CDR ALISTS))))
((EQUAL (CDR Z) EXPR) (CONS (CAR ALISTS) (INSTVAR PAT EXPR (CDR ALISTS))))
(T (INSTVAR PAT EXPR (CDR ALISTS)))))
(ASSOC PAT (CAR ALISTS))))))

(DEFUN ISVAR (PAT) (AND (ATOM PAT) (EQ (CAR (EXPLODE PAT)) '?)))